package com.ynet.middleground.riskmanage.bean;

import javax.validation.constraints.NotEmpty;

import com.ynet.core.common.BaseReqObj;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @ClassName DynamicPledgeOrReliefPledgeReq
 * @Description 冷链及大港-质押监管与解除质押监管（动态）请求类
 * @Author zhangyongbin
 * @Date 2020/8/17 17:57
 * @Version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "质押监管与解除质押监管（动态）请求类", description = "质押监管与解除质押监管（动态）请求类")
public class DynamicPledgeOrReliefPledgeReq extends BaseReqObj {
    private static final long serialVersionUID = 4197846772497913260L;

    @ApiModelProperty(value = "系统标志 0：冷链、1：大港", notes = "系统标志 0：冷链、1：大港", required = true)
    @NotEmpty(message = "系统标志不能为空")
    private String chanType;

    @ApiModelProperty(value = "数据主键(冷链入库做记录用，由渠道端生成并上送，每次上送的值唯一)", notes = "数据主键(冷链入库做记录用，由渠道端生成并上送，每次上送的值唯一)", required = true)
    @NotEmpty(message = "数据主键不能为空")
    private String taskId;

    @ApiModelProperty(value = "最低监管数量,单位为件", notes = "最低监管数量,单位为件", required = true)
    @NotEmpty(message = "最低监管数量不能为空")
    private String lowAmount;

    @ApiModelProperty(value = "最低监管重量,冷链单位为千克，大港单位为吨", notes = "最低监管重量,冷链单位为千克，大港单位为吨", required = true)
    @NotEmpty(message = "最低监管重量不能为空")
    private String lowWeight;

    @ApiModelProperty(value = "指令，JCZYJG：解除质押监管；ZYJG：质押监管", notes = "指令，JCZYJG：解除质押监管；ZYJG：质押监管", required = true)
    @NotEmpty(message = "指令不能为空")
    private String order;

    @ApiModelProperty(value = "客户号\n冷链支持多个，以英文逗号隔开", notes = "客户号\n冷链支持多个，以英文逗号隔开", required = true)
    @NotEmpty(message = "客户号不能为空")
    private String userNo;

    @ApiModelProperty(value = "客户名称，若系统标志上送1，此项必填", notes = "客户名称，若系统标志上送1，此项必填")
    private String userName;

    @ApiModelProperty(value = "货种代码", notes = "货种代码", required = true)
    @NotEmpty(message = "货种不能为空")
    private String typeCode;

    @ApiModelProperty(value = "货名，若系统标志上送1，此项必填", notes = "货名，若系统标志上送1，此项必填")
    private String typeName;

    @ApiModelProperty(value = "是否部分解除(对接大港专用);", notes = "是否部分解除(对接大港专用);")
    private Boolean isPartialRelease;

    @ApiModelProperty(value = "解除时，对应的原数据在中台的唯一标志;解除时必填，用于解除时和之前原质押的数据关联",
        notes = "解除时，对应的原数据在中台的唯一标志;解除时必填，用于解除时和之前原质押的数据关联")
    private Integer trendId;
    
    @ApiModelProperty(value = "规格", notes = "规格")
    private String formatSizeName;
}
